<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <style>
    * {
      margin: 0;
      padding: 0;
    }

    ul, ol, li {
      list-style: none;
    }

    .box {
      width: 600px;
      height: 400px;
      border: 3px solid #333;
      margin: 50px auto;
      display: flex;
      flex-direction: column
    }

    .box > ul {
      height: 60px;
      display: flex;
    }

    .box > ul > li {
      flex: 1;
      background-color: skyblue;
      color: #fff;
      font-size: 22px;
      display: flex;
      justify-content: center;
      align-items: center;
      cursor: pointer;
    }

    .box > ul > li.active {
      background-color: orange;
    }

    .box > ol {
      flex: 1;
      position: relative;
    }

    .box > ol > li {
      width: 100%;
      height: 100%;
      background-color: purple;
      position: absolute;
      left: 0;
      top: 0;

      font-size: 100px;
      color: #fff;

      display: none;
    }

    .box > ol > li.active {
      display: block;
    }
  </style>
</head>
<body>

  <div class="box">
    <ul>
      <li class="active">1</li>
      <li>2</li>
      <li>3</li>
    </ul>
    <ol>
      <li class="active">第一部分内容</li>
      <li>第二部分内容</li>
      <li>第三部分内容</li>
    </ol>
  </div>
  <script>
    // ul 是按钮 
    // ol 里边是 内容 


    // 三个按钮    0  1   2 
    // 三个内容区域 0  1   2

    // 按钮[0] 选中  内容[0] 显示 

    // 用户点击按钮实现上面的操作  
    // 需要对按钮绑定点击事件   循环  
    // 点击的时候  获取当前点击的按钮的索引值 
    // 根据索引值  显示对应的内容区域


    // 每次只有一个按钮被选中  
    // 每次只有一个内容区域显示

    // 如何保证 

    // 1.切换按钮以前 让所有 按钮都恢复默认样式
    // 2.点击谁 让哪个按钮高亮 


    // 1.切换内容区域以前 让所有 内容区域都隐藏
    // 2.点击谁 让哪个对应的内容区域显示

    // 先获取元素 

    var btn = document.querySelectorAll('ul > li');
    var content = document.querySelectorAll('ol > li');

    // btn.forEach(function(item,index){
    //     item.onclick = function(){
    //         // 1.首先让所有按钮恢复默认样式

    //         // 2.让所有的内容区域隐藏
    //         for(var j=0;j<btn.length;j++){
    //             btn[j].classList.remove('active');
    //             content[j].classList.remove('active');
    //         }
    //         //点击那一个让那一个高亮 
    //         // 对应的内容显示

    //         btn[index].classList.add('active');
    //         content[index].classList.add('active');
    //     }
    // });

    for(var i=0;i<btn.length;i++){
        // 准备一个容器 保存索引 
        btn[i].dataset.index = i;
        btn[i].onclick = function(){
            var index = this.dataset.index;
            // alert(i); // 到这里 i 的值是 3
            // 0 1 2 挨个绑定点击事件 
            // 绑定完事件以后 for循环 结束了
            // i++ => i = 3 参与判断 不符合要求 结束 
            // 所以每次点击的时候拿到的都是3 

            // 1.首先让所有按钮恢复默认样式
            // 2.让所有的内容区域隐藏

            for(var j=0;j<btn.length;j++){
                btn[j].classList.remove('active');
                content[j].classList.remove('active');
            }
            
            btn[index].classList.add('active');
            content[index].classList.add('active');

        }
    }

    // for  索引 可以从0 也可以从1 从2开始 支持i-- 
    // forEach 必须从0开始 不支持i-- 
  </script>
</body>
</html>